A variety of computer-based systems for facilitating communications among users have been developed. For example, electronic mail (email) systems allow users to send messages to one or more specified recipients. The specified recipients of a message may retrieve and read the message at any time, and may respond to the message or forward it to other users. Email systems typically provide the ability to create mailing lists to facilitate communication among groups of users having common roles or interests. News services (also referred to as xe2x80x9cclipping servicesxe2x80x9d) deliver to users selected news articles covering topics of interest to the users. Such news services typically select which news articles to deliver to users by comparing words in the news articles to keywords provided by the users. Electronic bulletin board systems allow groups of users to create electronic bulletin boards, also referred to as xe2x80x9cnewsgroups,xe2x80x9d that typically correspond to a particular topic. Any user who subscribes to a newsgroup may post messages to the newsgroup and read messages posted to the newsgroup by other subscribed users. Electronic xe2x80x9cchat roomsxe2x80x9d enable users to communicate with each other in real-time by entering messages that are immediately communicated to and viewable by other users in the same chat room. The public Internet is increasingly being used as a medium for these and other forms of electronic communication.
One problem associated with such communication systems is that of xe2x80x9cinformation overload.xe2x80x9d Users of such systems often find themselves presented with such a large volume of information (e.g., email messages or newsgroup postings) that they find it difficult or impossible to manually examine all of the information in order to identify the information that is relevant to them. As a result, users may fail to receive or read information that is relevant to them and to engage in potentially fruitful communications. Similarly, users who transmit information using such communications systems may fail to reach desirable recipients because such recipients are unable to separate relevant from irrelevant messages.
A variety of automated and semi-automated systems have been developed to help users organize and filter information received using electronic communications systems. For example, some systems attempt to deliver messages only to users to whom the messages are relevant. Such systems typically allow each user to define a set of preferences that indicate the user""s interests. Such preferences may, for example, include keywords that describe the user""s interests. Typically, such systems store incoming messages in a database as they are received by the system. When a certain number of messages have been received, the system performs a query on the database using each user""s preferences. Each query typically produces scores for the messages in the database indicating the relative relevancies of the messages. The system uses these scores to determine which messages stored in the database are sufficiently relevant to forward to the corresponding user.
One problem with such conventional systems is that they require that multiple messages be received by the system before the relevancies of the messages can be determined. This requirement delays the delivery of incoming messages to users of the system. Such systems may therefore not be appropriate for environments in which communications need to be delivered quickly, such as enterprise email systems.
Another problem with such conventional systems is that their performance degrades as the number of system users increases. As described above, such systems perform a database query for each user of the system. The number of queries that must be performed therefore increases in proportion to the number of system users. Performance of such queries on large databases of messages can impose a significant load on the system and further delay the transmission of communications to appropriate recipients.
A further problem with such conventional systems is that users of such systems have limited control over the number and frequency of messages they receive from the system. Defining user preferences using keywords primarily serves to define the subject matter in which the user is interested, but does not place any bounds on the number or frequency of messages that the system will deliver to the user. As a result, users of such systems may experience xe2x80x9cdownxe2x80x9d times during which they are ready and willing to receive, read, and respond to messages but during which they receive few messages or none at all. Similarly, users of such systems may be overloaded by a flood of messages that match the users"" preferences. Such systems, therefore, fail to address a primary aspect of the problem of information overload.
Similar problems arise in systems that allow users to define a fixed relevancy threshold for incoming messages. Such systems compare the computed relevancy score of each incoming message to the fixed relevancy threshold defined by each user to determine whether to forward the incoming message to each user. When the system receives a large number of messages that exceed a user""s relevancy threshold, the user will be overwhelmed with incoming messages. Similarly, when the system receives few messages that exceed a user""s relevancy threshold, the user will receive few messages, even if the user is willing and available to read additional messages. Use of fixed thresholds, therefore, does not allow the frequency with which messages are delivered to users to change in response to the frequency and relevancy of incoming messages or to the preferences or activity levels of users.
Some systems allow users to set a fixed limit on the number of incoming messages to be delivered to them periodically (e.g., each day). The problems associated with such systems are similar to those described above. For example, if a large number of highly-relevant messages are received by the system in one day, the user will fail to receive relevant messages. Similarly, if the system receives many low-relevancy messages in one day, the user will receive few messages during the day, even if the user is willing and available to read more messages. Such systems, therefore, fail to respond to users"" changing preferences and activity levels of users.
A system is provided that receives an incoming message and forwards the message to an appropriate set of users. The system may, for example, determine the relevancy of the incoming message to a plurality of users and forward the incoming message to only those users to whom the message is particularly relevant. Users may interactively control how frequently messages are delivered to them in order to avoid being overloaded with information. The incoming message may take any of a variety of forms, such as an email message, a newsgroup posting, a chat room message, or a news article. The message or any information derived from it may be delivered to the appropriate set of users in any of a variety of ways, such as by delivering the information using email, a web page, a newsgroup posting, or a file transfer.
In one aspect, a method for providing information to a plurality of users based on the relevancy of the information to the users is provided. The method includes steps of receiving an incoming message, generating similarity scores indicating similarities of the incoming message to features of a plurality of messages, generating relevancy scores for the plurality of users, the relevancy scores indicating relevancies of the incoming message to the plurality of users based on the similarity scores and a plurality of user profiles including information descriptive of the plurality of users"" preferences for the features of the plurality of users, and delivering, to at least some of the plurality of users, message information derived from the incoming message, the relevancy scores, and the plurality of user profiles. The step of generating similarity scores may include steps of querying a message feature database using the incoming message to develop search results, the message feature database including records descriptive of the features of the plurality of messages, and generating the relevancy scores based on the search results.
The plurality of user profiles may include a preference matrix indicating preferences of the plurality of users for the features, and the step of generating relevancy scores may comprise a step of generating the relevancy scores by performing vector multiplication of a vector representing the similarity scores by vectors in the preference matrix. The relevancy scores may, however, be generated in any manner. The method may further comprise steps of receiving user feedback from one of the plurality of users and modifying the user""s profile in the plurality of user profiles database based on the user feedback. The step of modifying the user""s profile may include a step of receiving an indication from the user that the user has expressed a positive preference for the message information. The step of modifying the user""s profile may include a step of receiving an indication from the user that the user has expressed a negative preference for the message information.
The plurality of user profiles may include relevancy thresholds for the plurality of users, and the step of delivering message information may include steps of comparing the relevancy scores to the relevancy thresholds and delivering the message information only to those users whose relevancy scores satisfy the corresponding relevancy thresholds. The plurality of user profiles may include a maximum number of users to whom the message information is to be delivered, and the step of delivering message information may include a step of delivering the message information to no greater than the maximum number of users. The plurality of user profiles may include a minimum number of users to whom the message information is to be delivered, and the step of delivering message information may include a step of delivering the message information to no fewer than the minimum number of users.
The step of delivering message information may include a step of sending the message information to the at least some of the plurality of users as at least one electronic mail message. The step of delivering message information may include a step of displaying the message information to a particular one of the plurality of users in a message display. The step of displaying the message information may include a step of: displaying the message information to the particular one of the plurality of users in a message display that indicates the relevancy score of the incoming message for the particular one of the plurality of users in relation to relevancy scores of other messages for the particular one of the plurality of users. The step of delivering the message information may include a step of responding to a request from a process executing on a client computer for message information satisfying specified criteria. The process may be associated with a particular one of the plurality of users, and the step of displaying the message information may include a step of responding to a request from the process executing on the client computer for message information corresponding to a specified number of messages having optimal relevancy scores for the particular one of the plurality of users.
Another method for providing information to the user based on the relevancy of the information to the user is also provided. The method includes steps of receiving an incoming message, generating a relevancy score for the user, the relevancy score indicating a relevancy of the incoming message to the user, determining whether the relevancy score of the incoming message satisfies the relevancy threshold, and delivering to the user message information derived from the incoming message and adjusting the relevancy threshold when the relevancy score of the incoming message satisfies the relevancy threshold. The method may further include a step of adjusting the relevancy threshold by an amount determined by a time-dependent function when the relevancy score of the incoming message does not satisfy the relevancy threshold. The step of delivering message information may include a step of adjusting the relevancy threshold by a function of the difference between the relevancy threshold and a maximum relevancy value. The step of delivering the message information may include a step of adjusting the relevancy threshold by a function of the difference between the relevancy threshold and an amount determined by a time-dependent function of the relevancy threshold.
Another method for providing information to the user based on the relevancy of the information to the user is also provided. The method includes steps of receiving an incoming message, generating a relevancy score for the user, the relevancy score indicating a relevancy of the incoming message to the user, calculating the relevancy threshold as a function of time, determining whether the relevancy score of the incoming message satisfies the relevancy threshold, and delivering the incoming message to the user when the relevancy score of the incoming message satisfies the relevancy threshold. The step of calculating may include a step of calculating the relevancy threshold as a function of time that is specified by the user. The step of calculating may include steps of receiving user.volume input from the user, the user volume input indicating a desired frequency of message delivery to the user, and calculating the function of time based on the user volume input.
A computer-readable medium and systems for providing information to a user based on the relevancy of the information to the user are also provided.
Other aspects of the invention include the various combinations of one or more of the foregoing aspects of the invention, as well as the combinations of one or more of the various embodiments thereof as found in the following detailed description or as may be derived therefrom. The foregoing aspects of the invention also have corresponding computerimplemented processes which are also aspects of the present invention. Other embodiments of the present invention may be derived by those of ordinary skill in the art both from the following detailed description of a particular embodiment of the invention and from the description and particular embodiment of a system in accordance with the invention.